package org.wdcode.base.interfaces.dao.impl;

import org.wdcode.base.bean.EntityBean;
import org.wdcode.base.helper.EntityHelper;

/**
 * 通用Dao的HibernateDao助手抽象实现
 * @author WD
 * @since JDK6
 * @version 1.0 2009-09-23
 */
public abstract class BaseDaoHibernateHelper<E extends EntityBean, H extends EntityHelper<E>> extends BaseDaoHibernate<E> {
	// 助手类
	private H	helper;

	/**
	 * 获得助手类
	 * @return 助手类
	 */
	public final H getHelper() {
		return helper;
	}

	/**
	 * 设置助手类
	 * @param helper 助手类
	 */
	public final void setHelper(H helper) {
		this.helper = helper;
	}

	/**
	 * 获得子类的Class
	 * @return 子类的Class
	 */
	@Override
	protected Class<E> getEntityClass() {
		return helper.getEntityClass();
	}

	/**
	 * 根据ID构造一个实体
	 * @param id 主键ID
	 * @return 实体
	 */
	@Override
	protected E newInstance(int id) {
		return helper.newInstance(id);
	}
}
